<template >
  <div>
    <h1>Software Quality View</h1>
    <p>英雄联盟皮肤销售网站</p>
    <div class="container">
      <h2 style="text-align:center">《软件质量保证与测试》</h2>
      <span style="color: red">1.简述什么是软件质量？软件质量一般可分为哪三个方面的质量。</span>
      <div>答：软件产品满足规定的需求能力有关的全部特征和特性
        软件质量分为内部质量、外部质量、使用质量。</div><br>

      <span>2.从分别从软件产品内部和外部视角简述软件缺陷的定义。</span>
      <div>答：1）从产品内部看，软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题；<br> 2）从外部看，软件缺陷是系统所需要实现的某种功能的失效或违背。</div><br>
      <span>3.简述静态测试方法和动态测试方法。</span>
      <div>答：1）静态测试方法不运行被测试程序，会对软件产品的需求和设计规格说明书进行评审、 对程序代码进行检查和分析。2）动态测试方法通过运行程序发现错误，通过观察代码运行 过程，来获取系统信息，对系统行为进行验证。
      </div><br>
      <span>4.简述软件测试用例的组成。</span>
      <div>
        答：测试用例包括：① 输入部分：测试数据和操作步骤；② 输出部分：系统预期执行结 果；③ 环境部分：系统环境设置，即进行测试所必须的工作平台和前提条件。
      </div><br>
      <span>5.说说动态测试有什么局限性？静态测试中同行代码评审有什么好处?</span>
      <div>答：
        1）动态测试局限性：
        开发早期无法提供可运行对象，导致无法执行动态测试； 特定类型的缺陷，通过动态测试无法发现。
        2）同行评审好处：
        促使参与者在有监督压力下工作，提高责任心； 有助于在开发早期发现需求和设计中的缺陷；
        有助于程序员发现不足，提高自身工作质量。</div><br>
      <span>6.分别给出软件测试的正面定义和反面定义。</span>
      <div>答：正面定义：测试是为了验证软件是否符合用户需求，即验证软件产品是否能正常工作。
        反面定义：测试是为了发现程序中的错误，而不是证明程序无错误。</div><br>

      <span>7.请简述 TDD 的全称，并画出 TDD 的软件过程。</span>
      <div>答：测试驱动开发，英文全称 Test-Driven Development，简称 TDD</div><br>

      <span>8.请解释白盒测试和黑盒测试。</span>
      <div>答：1）白盒测试是结构测试，指通过对程序内部结构的分析、检测来寻找问题。检查是否 所有的结构及逻辑都是正确的，检查软件内部动作是否按照设计说明的规定进行。
        2）黑盒测试是功能测试，指通过软件的外部表现来发现错误，是在程序界面处进行测试， 只是检查是否按照需求规格说明书的规定正常实现。</div><br>

      <h2 style="text-align:center">《基于需求的软件测试方法（黑盒）》</h2>
      <span>1.简述黑盒测试的概念及使用黑盒测试方法设计测试用例的至少 4 种方法？</span>
      <div>答：黑盒测试是功能测试，指通过软件的外部表现来发现错误，是在程序界面处进行测 试，只是检查是否按照需求规格说明书的规定正常实现。
        黑盒测试方法主要有：
        1.场景法
        2.等价类划分法
        3.边界值分析法
        4.边界值分析法
        5.因果图法
        6.决策表法
        7.正交试验法</div><br>
      <span>2. 什么是边界值分析法？为什么要用边界值分析法设计测试用例？</span>
      <div>答：1）边界值分析法是对输入或输出边界值进行测试的一种黑盒测试方法，通常作为等价 类分析法的补充，这种情况下，其测试用例来自等价类的边界。
        2）测试实践表明，大量故障往往发生在输入域或输出域的边界上或附近，而不是内部的常 规位置，因此，针对边界情况设计测试用例，通常会有好的测试效果。</div><br>

      <span>3.有函数 f(x, y, z)=x + y + z，其中 x ∈ [1900, 2100]，y ∈ [1,12]，z ∈ [1,31]。请写
      出该函数采用标准性边界值分析法设计的测试用例。</span>
      <div>答：（答案不唯一，一组参考答案如下, 共 13 个）
        (1900, 6, 15), (1901, 6, 15), (2100, 6, 15), (2099, 6, 15), (2000, 1, 15), (2000, 2, 15), (2000, 12, 15), (2000, 11, 15), (2000, 6, 1), (2000, 6, 2), (2000, 6, 31), (2000, 6, 30), (2000, 6, 15)
      </div><br>
      <span>4.输入三个整数 a, b, c 作为三角形的三条边，判断 a, b, c 构成三角形的形状，要求 三条边的取值范围均满足 10≤a, b, c≤30。请使用健壮性边界值分析法为该程序设计测 试用例。</span>
      <div>答：（答案不唯一，典型取值不是只能取 20） (9,20,20), (10,20,20), (11,20,20), (29,20,20), (30,20,20), (31,20,20), (20,9,20), (20,10,20), (20,11,20), (20,29,20), (20,30,20), (20,31,20), (20,20,9), (20,20,10), (20,20,11), (20,20,29), (20,20,30), (20,20,31), (20,20,20)
      </div>

      <h2 style="text-align:center">《结构化软件测试方法（白盒）》</h2>

      <span>1.简述白盒测试的概念及使用白盒测试方法设计测试用例的至少 4 种方法？</span>
      <div>答：白盒测试是结构测试，指通过对程序内部结构的分析、检测来寻找问题。检查是否所 有的结构及逻辑都是正确的，检查软件内部动作是否按照设计说明的规定正常进行。 白盒测试的方法主要有：
        基于逻辑覆盖法：
        语句覆盖：覆盖每一条语句，但缺少路径的覆盖
        判定覆盖：根据判定条件形成的路径，但设计的值不准确（根据要求赋值）
        条件覆盖：根据执行路径得到条件，但是不能保证判定覆盖（根据判定条件赋值）
        判定、条件覆盖，根据执行路径写出判定和条件，但是设计难
        条件组合覆盖：覆盖范围广，设计用例过多效率低<br>

        基本路径法：
        （1）画出控制流图
        （2）算出环形复杂度
        V（G）= 边数-点数 + 2
        （3）列出基本路径
        写出基本路径
        （4）画出测试用例表（根据判定条件写出预期结果和判定路径）
        循环测试法
        程序插桩法
        路径法</div>

      <h2 style="text-align:center">《单元测试与集成测试》</h2>
      <span>1.什么是单元测试？请简述单元测试的主要内容。</span>
      <div>答：单元测试是模块测试，检查每个程序单元能否正确实现详细设计说明中的模块功能 等。绝大部分情况下，单元测试由编程人员完成。
        单元测试的主要内容有：模块接口、边界条件、局部数据结构、独立路径、出错处理等。</div><br>
      <span>2.单元测试关注代码单元中的哪些内容（即单元测试任务）？</span>
      <div>答：1）模块独立执行路径测试；2）局部数据结构测试；3）模块接口测试；4）单元边界 条件测试；5）单元容错测试；6）内存分析
      </div><br>
      <span>3.什么是集成测试？它常可以发现哪方面的问题？ </span>
      <div>答：集成测试又称“组装测试”、“联合测试”。集成测试遵循特定的策略和步骤，将已经通 过单元测试的各个软件单元（或模块）逐步组合在一起进行测试，以期望通过测试发现各软件单元接口之间存在的问题。
      </div><br>
      <span>4.集成测试有哪些不同的集成策略？</span>
      <div> 答：大棒集成方法（或一次性集成方法）、自顶向下集成方法、自底向上集成方法、混合策 略集成方法、三明治集成方法、改善的三明治集成方法、持续集成方法。
      </div><br>
     <span> 5.简述自动化测试框架 JUnit 中以下五个标签的作用和执行时机：@Test，@Before， @After，@BeforeClass，@AfterClass。</span>
      <div>      （1）@Test，被该标签修饰的测试用例（或方法）才会被 JUnit 框架调用；<br>
        （2）@Before，在每个测试用例（或方法）执行之前执行一次；<br>
        （3）@After，在每个测试用例（或方法）执行之后执行一次；<br>
        （4）@BeforeClass，在测试类的所有测试用例（或方法）执行之前执行一次；<br>
        （5）@AfterClass，在测试类的所有测试用例（或方法）执行之后执行一次。</div><br>
      <span> 6.某系统模块结构如下图所示。试用自底向上增量式集成策略完成对该软件的集成，为每个模块构造必要的驱动模块或者桩模块。（用简图分步画出）。</span><br>
      <span>7.某系统模块结构如下图所示。试用自顶向下广度优先集成策略完成对该软件的集成，为 每个模块构造必要的驱动模块或者桩模块。（用简图分步画出）。</span>
    </div>
  </div>
</template>

<script>
export default {
  name: 'SoftwareQualityView',


}
</script>

<style  scoped>
.container {

  font-size: 20px;
}
.tdd{

}
</style>